# -*- coding: utf-8 -*-
"""
@Time    : 2024/8/20 10:38 
@Author  : ZhangShenao 
@File    : 3.构造方法.py 
@Desc    : 构造方法

类的实例化步骤:
1. 开辟内存空间
2. 调用__init__构造方法,进行实例属性的初始化操作
3. 将该实例内存空间作为返回值,赋值给对象引用
"""


class Dog(object):
    # 类属性

    leg_num: int = 4
    has_hair: bool = True
    has_tail: bool = True

    def __init__(self, name: str, breed: str, age: int):
        """
        构造方法
        :param name: 狗的名字
        :param breed: 狗的品种
        :param age: 狗的年龄
        """

        # 初始化实例属性
        print("执行__init__构造方法")
        self.name = name
        self.breed = breed
        self.age = age

    # 定义实例方法

    def bark(self):
        print(f"{self.name}正在旺旺叫...")

    def eat(self):
        print(f"{self.name}正在吃东西...")

    def play(self):
        print(f"{self.name}正在玩耍...")

    def show_info(self):
        print(f"小狗的名字: {self.name}, 品种: {self.breed}, 年龄: {self.age}")


if __name__ == '__main__':
    # 实例化类,解释器会自动执行__init__构造方法
    jin_mao = Dog(name="毛毛", breed="金毛", age=30)
    jin_mao.show_info()
